package com.jctrip.hotel.source.model.greentree.resp;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @Author：Haruhi
 * @description:
 * @Date：2023/11/10 11:56
 * @Package：com.jctrip.hotel.source.model.greentree.resp
 * @Project：hotel-main
 */
@Data
public class GetHotelInfoByCodeResp {

    @JsonProperty("ChainCode")
    private String chainCode;
    @JsonProperty("Language")
    private String language;
    @JsonProperty("Code")
    private String code;
    @JsonProperty("Msg")
    private String msg;
    @JsonProperty("Data")
    private DataBean data;

    @Data
    public static class DataBean {
        @JsonProperty("HotelCode")
        private String hotelCode;
        @JsonProperty("HotelName")
        private String hotelName;
        @JsonProperty("ProvinceName")
        private String provinceName;
        @JsonProperty("CityName")
        private String cityName;
        @JsonProperty("DistrictName")
        private String districtName;
        @JsonProperty("HotelAddress")
        private String hotelAddress;
        @JsonProperty("HotelPhone")
        private String hotelPhone;
        @JsonProperty("ContactEmail")
        private String contactEmail;
        @JsonProperty("PostalCode")
        private String postalCode;
        @JsonProperty("Fax")
        private String fax;
        @JsonProperty("Longitude")
        private String longitude;
        @JsonProperty("Latitude")
        private String latitude;
        @JsonProperty("HotelProfile")
        private String hotelProfile;
        @JsonProperty("Opendate")
        private String opendate;
        @JsonProperty("BusinessFlag")
        private String businessFlag;
        @JsonProperty("HotelTypeId")
        private String hotelTypeId;
        @JsonProperty("HotelLevel")
        private String hotelLevel;
        @JsonProperty("Grp")
        private String grp;
        @JsonProperty("HotelPictureInfos")
        private List<HotelPictureInfosBean> hotelPictureInfos;
        @JsonProperty("HotelSevItem")
        private HotelSevItemBean hotelSevItem;
        @JsonProperty("HotelDriveRoutes")
        private List<HotelDriveRoutesBean> hotelDriveRoutes;
        @JsonProperty("HotelLabelInfos")
        private List<?> hotelLabelInfos;

        @Data
        public static class HotelSevItemBean {
            @JsonProperty("HasInvoice")
            private Boolean hasInvoice;
            @JsonProperty("HasPickUp")
            private Boolean hasPickUp;
            @JsonProperty("PickUpCharge")
            private Boolean pickUpCharge;
            @JsonProperty("PickUpCost")
            private String pickUpCost;
            @JsonProperty("HasParking")
            private Boolean hasParking;
            @JsonProperty("ParkingCharge")
            private Boolean parkingCharge;
            @JsonProperty("ParkingSpaces")
            private String parkingSpaces;
            @JsonProperty("ParkingCost")
            private String parkingCost;
            @JsonProperty("HasPOS")
            private Boolean hasPOS;
            @JsonProperty("HasRestaurant")
            private Boolean hasRestaurant;
            @JsonProperty("HasConferenceRoom")
            private Boolean hasConferenceRoom;
            @JsonProperty("ConferenceRoomNum")
            private String conferenceRoomNum;
            @JsonProperty("ConferenceRoomAccommodate")
            private String conferenceRoomAccommodate;
            @JsonProperty("ConferenceRoomCost")
            private String conferenceRoomCost;
            @JsonProperty("HasConditioned")
            private Boolean hasConditioned;
            @JsonProperty("ConditionedOpenTime")
            private String conditionedOpenTime;
            @JsonProperty("HasHeating")
            private String hasHeating;
            @JsonProperty("HeatingOpenTime")
            private String heatingOpenTime;
            @JsonProperty("HasLaundry")
            private Boolean hasLaundry;
            @JsonProperty("LaundryType")
            private String laundryType;
            @JsonProperty("LaundryCost")
            private String laundryCost;
            @JsonProperty("HasSelfServiceMachine")
            private Boolean hasSelfServiceMachine;
            @JsonProperty("HasTicket")
            private Boolean hasTicket;
            @JsonProperty("AircraftTicket")
            private Boolean aircraftTicket;
            @JsonProperty("TrainTicket")
            private Boolean trainTicket;
            @JsonProperty("TicketCost")
            private String ticketCost;
            @JsonProperty("HasLobby")
            private Boolean hasLobby;
            @JsonProperty("HasLuggageStorage")
            private Boolean hasLuggageStorage;
            @JsonProperty("HasSafe")
            private Boolean hasSafe;
            @JsonProperty("HasLobbyWifi")
            private Boolean hasLobbyWifi;
            @JsonProperty("HasWake")
            private Boolean hasWake;
            @JsonProperty("HasStore")
            private Boolean hasStore;
            @JsonProperty("HasMap")
            private Boolean hasMap;
            @JsonProperty("HasATM")
            private Boolean hasATM;
            @JsonProperty("HasExchange")
            private Boolean hasExchange;
            @JsonProperty("HasPost")
            private Boolean hasPost;
            @JsonProperty("HasLift")
            private Boolean hasLift;
            @JsonProperty("HasNewspaper")
            private Boolean hasNewspaper;
            @JsonProperty("HasCopy")
            private Boolean hasCopy;
            @JsonProperty("HasFax")
            private Boolean hasFax;
            @JsonProperty("HasSports")
            private Boolean hasSports;
            @JsonProperty("SportsContent")
            private String sportsContent;
            @JsonProperty("HasEntertainment")
            private Boolean hasEntertainment;
            @JsonProperty("EntertainmentContent")
            private String entertainmentContent;
            @JsonProperty("HasUmbrella")
            private Boolean hasUmbrella;
            @JsonProperty("HasIron")
            private Boolean hasIron;
            @JsonProperty("HasCar")
            private Boolean hasCar;
            @JsonProperty("HasIPTV")
            private Boolean hasIPTV;
            @JsonProperty("HasToiletries")
            private Boolean hasToiletries;
            @JsonProperty("ToiletriesCharge")
            private String toiletriesCharge;
            @JsonProperty("ToiletriesCost")
            private String toiletriesCost;
            @JsonProperty("HasSlippers")
            private Boolean hasSlippers;
            @JsonProperty("SlippersCharge")
            private String slippersCharge;
            @JsonProperty("HasPhone")
            private Boolean hasPhone;
            @JsonProperty("Network_Asdl")
            private Boolean networkAsdl;
            @JsonProperty("Network_Wifi")
            private Boolean networkWifi;
            @JsonProperty("HasBathrobe")
            private Boolean hasBathrobe;
            @JsonProperty("HasToilet")
            private Boolean hasToilet;
            @JsonProperty("HasHotWater")
            private Boolean hasHotWater;
            @JsonProperty("HasBottledWater")
            private Boolean hasBottledWater;
            @JsonProperty("HasKettle")
            private Boolean hasKettle;
            @JsonProperty("HasStationery")
            private Boolean hasStationery;
            @JsonProperty("HasSewing")
            private Boolean hasSewing;
            @JsonProperty("HasHairDryer")
            private Boolean hasHairDryer;
            @JsonProperty("Decorationdate")
            private String decorationdate;
            @JsonProperty("Roomtotal")
            private String roomtotal;
            @JsonProperty("BuildingCount")
            private String buildingCount;
            @JsonProperty("Layer")
            private String layer;
            @JsonProperty("DatangBuilding")
            private String datangBuilding;
            @JsonProperty("Datanglayer")
            private String datanglayer;
            @JsonProperty("Roomlayer")
            private String roomlayer;
            @JsonProperty("HasReceivingForeign")
            private Boolean hasReceivingForeign;
            @JsonProperty("BusinessInfo")
            private String businessInfo;
            @JsonProperty("LandmarkPosition1")
            private String landmarkPosition1;
            @JsonProperty("LandmarkBuild1")
            private String landmarkBuild1;
            @JsonProperty("LandmarkDistance1")
            private String landmarkDistance1;
            @JsonProperty("LandmarkPosition2")
            private String landmarkPosition2;
            @JsonProperty("LandmarkBuild2")
            private String landmarkBuild2;
            @JsonProperty("LandmarkDistance2")
            private String landmarkDistance2;
        }

        @Data
        public static class HotelPictureInfosBean {
            @JsonProperty("PicType")
            private String picType;
            @JsonProperty("PicUrl")
            private String picUrl;
        }

        @Data
        public static class HotelDriveRoutesBean {
            @JsonProperty("Destination")
            private String destination;
            @JsonProperty("Route")
            private String route;
        }
    }
}
